package vista.ventanaEstadoTarea;

import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import modelo.exception.SameStateException;
import modelo.exception.StatusChangeException;

/**
 * @author Cristian
 * extiende de ButtonAction.
 * */
public class BotonTrabajarPausar extends ButtonAction{

	//Constructor *********************************************************** //
	
	public BotonTrabajarPausar(VentanaTarea modelo){
		super(modelo);
	}
	
	/**
	 * Boton que determina el estado de la tarea.
	 * Si la tarea esta trabajando, pasa al estado Pausado.
	 * Si esta pausado lo pasa al estado EnTrabajo.
	 * Solo se puede apretar cuando la tarea esta en estado Iniciado, caso contrario lanza una 
	 * excepcion.
	 * Escribe en un txt, lo realizado hasta el momento.
	 * Modifica el label de estado, y tambien el label de porcentaje de Realizacion.
	 * @exception SameStateException.
	 * @exception StatusChangeException.
	 * */
	public void actionPerformed(ActionEvent e) {
		try{
			if(this.ventana.getModelo().estaTrabajando()){
				this.ventana.getModelo().pausarTarea();
				this.escribir("TRABAJADA: "+ this.ventana.getModelo().getRealizacion());
				
			}else{	
				this.ventana.getModelo().trabajarTarea();
			}
			this.ventana.getEstado().setText(this.ventana.getModelo().getEstado().getNombre());
			this.ventana.getLabelPorcentajeRealizacion().setText(this.ventana.getModelo().porcentajeDeRealizacion()+ "%");
			
		}catch (SameStateException e1) {
			JOptionPane.showMessageDialog(this.ventana.getFrame().getContentPane(), "No se puede cambiar al mismo estado",
					"Error", JOptionPane.ERROR_MESSAGE);

		}catch (StatusChangeException e1) {
			JOptionPane.showMessageDialog(this.ventana.getFrame().getContentPane(), "No se puede cambiar de estado",
					"Error", JOptionPane.ERROR_MESSAGE);
		}
	}

}
